Database management systems traditionally provide for managing data in a particular database, and managing access to that data by many different user programs. These users programs are written in a high level language, such as C, C++, Java, or some other analogous language. The user program typically performs a call of the database management system when a database operation is to be performed.
When a database management system receives the request, it typically handles that request as depicted in FIG. 1. As illustrated in that FIG., a system 100 includes a plurality of user applications 102a-n, from one or more of which a query statement can be is received by a database management system 104. If the database management system 104 is a relational database management system the query statement can be, for example, a SQL statement. The database management system 104 analyzes the query statement to determine if there are any errors in the statement itself. Assuming that there are no errors, the database management system 104 will transmit a call to an operating system 106 hosting that system (shown as CREAT$IOGATE), requesting access to the database file 108. The operating system 106 will then assign the database file to the database management system 104. The database management system 104 then caches at least portions of the database file using subsequent system calls (e.g., UDS$IOW). This requested data is modified by the database management system 104, and control is returned to the user program for continued execution.
This arrangement has drawbacks. For example, this arrangement requires caching of data in the database management system 104, which requires the database management system to manage data control using locks and test & set operations on the underlying data file. Beyond this cache control requirement, the database management system 104 is required to address various portions of the database file 108 as required to access data managed by the database. This can become problematic when database files increase in size to the extent that the database file has a size greater than the addressable range of the database management system. In such situations, the database management system 104 traditionally would be limited such that each database file could only be of a limited size, or at the very least the user application 102 would be limited to addressing a particular range of addresses. As data sizes continue to increase, this limitation in the database management system will only become an increasingly problematic issue.
For these and other reasons, improvements are desirable.